/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package loja.gui.tablemodel;

import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import loja.dominio.Produto;

/**
 *
 * @author Rodrigo
 */
public class ProdutoTableModel extends AbstractTableModel {

    private List<Produto> cadProdutos;
    private static final String[] COLUNAS = {"Codigo", "Categoria", "Marca", "Descrição do Produto", "Preço"};

    public ProdutoTableModel() {
        cadProdutos = new ArrayList<Produto>();
    }

    public void setCadProdutos(List<Produto> cadProdutos) {
        this.cadProdutos = cadProdutos;
        fireTableDataChanged();
    }

    public void addCadProdutos(Produto produto) {
        this.cadProdutos.add(produto);
        fireTableDataChanged();
    }

    public void limpar() {
        this.cadProdutos = new ArrayList<Produto>();
        fireTableDataChanged();
    }

    public Produto getProduto(int rowIndex) {
        return cadProdutos.get(rowIndex);
    }

    public int getRowCount() {
        return cadProdutos.size();
    }

    public int getColumnCount() {
        return COLUNAS.length;
    }

    @Override
    public String getColumnName(int column) {
        return COLUNAS[column];
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        Produto p = cadProdutos.get(rowIndex);

        switch (columnIndex) {
            case 0:
                return p.getId();
            case 1:
                return p.getCategoria().getCategoria();
            case 2:
                return p.getMarca().getMarca();
            case 3:
                return p.getDescricao();
            case 4:
                return p.getPreco();
            default:
                return "Valor Desconhecido";
        }
    }
}
